package com.lg.algorithm.collections.list;

import java.util.Collections;
import java.util.LinkedList;
import java.util.List;

/**
 * 链表 头尾都可以 增加 移除 元素，所以可以是queue也可以是deque
 *
 *
 * linkedlist
 * 获取指定位置上的元素
 * 循环知道找到那个元素，接近头、从头开始循环；接近尾从尾部开始循环
 *
 * 底层数据结构
 * list 链表
 *
 * 初始化大小多少
 * 0、null，头尾指针都指向null
 *
 * 可以指定大小么
 * 不可以
 *
 * 大小有限制么，是多少
 * 没有
 *
 * 怎么扩容的，扩容的整个过程是怎么样的
 * 里面有两个指针，一个只在头，一个指在尾
 * 每次来一个新元素，new node 增加到链表中
 *
 * 减少会缩容么
 * 容量没有限制，无限大
 *
 * collections.synchronized
 * synchronized 锁自己这个这个对象
 * 读写全加锁
 * copyOnWriteLinkedList
 * 没有
 */
public class LinkedListTest {
    public static void main(String[] args) {
        LinkedList<Integer> integers = new LinkedList<Integer>();
        integers.add(1);
        integers.add(2);
        integers.add(3);
        integers.add(4);
        integers.add(5);
        integers.add(6);
        integers.add(7);
        integers.add(8);
        integers.add(9);
        integers.add(0);
        integers.add(11);
        integers.add(12);
        integers.add(13);

        integers.get(2);
        integers.remove(3);

        List<Integer> integers1 = Collections.synchronizedList(integers);
        integers1.add(3);
        integers1.get(1);
        integers1.remove(1);

        
    }
}
